#include <iostream>
using namespace std;
class Dog
{
public:
	virtual void bark() { cout << "Woof!" << endl; }
	virtual void eat() { cout << "The dog has eaten." << endl; }
};

class Bird
{
public:
	virtual void chirp() { cout << "Chirp!" << endl; }
	virtual void eat() { cout << "The bird has eaten." << endl; }
};

class DogBird :public Dog, public Bird
{
public:
	void eat(){
		Dog::eat();	//Explicitly call Dog's version of eat()
}
};
//
//int main()
//{
//	DogBird myConfusedAnimal;
//	myConfusedAnimal.bark();
//	myConfusedAnimal.chirp();
//
//
//	myConfusedAnimal.eat();	//BUG! Ambigous call to method eat()
//	static_cast<Dog>(myConfusedAnimal).eat();	//Slices,calling Dog::eat()
//	myConfusedAnimal.Dog::eat();				//Calls Dog:eat()
//	return 0;
//}